// 1.0 开启web服务器（express）
const express = require('express');
const fs = require('fs');

const server = express();

// 2.0 引入中间件
server.use(express.urlencoded());

// 根据参数获取英雄皮肤
server.get('/getHeroSkin', (req, res) => {
    // 2.0 获取到req.query中的参数值
    let { heroName } = req.query;
    // console.log(heroName);

    // 3.0 获取data.json中的符合名称为heroName变量值的数据
    // 3.1 将data.json读取到内存中变为一个数组
    // hlist:格式是数组
    let hlist = require('./db/data.json');

    // 3.2 调用数组的filter方法完成过滤
    let newArr = hlist.filter(item => item.cname == heroName);

    // 设置响应头Access-Control-Allow-Origin 值为*来消除ajax请求跨域阻止
    res.set('Access-Control-Allow-Origin', "*");

    // 3.3 将数据响应
    res.send(newArr);
})

// 开启post /addHeroSkin的路由
server.post('/addHeroSkin', (req, res) => {
    // 1.0 通过req.body就可以获取到请求体中的数据,直接结构出来
    // 在本案例中，请求体的格式：{cname:'',skin_name:''}
    // let { cname, skin_name } = req.body;

    // 2.0 将data.json文件通过reuire()载入到内存(数组)
    let list = require('./db/data.json');

    // 3.0 将内容push到数组中
    list.push(req.body);

    // 4.0 利用fs.writeFileSync方法覆盖写入之前的文件
    fs.writeFileSync('./db/data.json', JSON.stringify(list), 'utf8');

    // 设置响应头Access-Control-Allow-Origin 值为*来消除ajax请求跨域阻止
    res.set('Access-Control-Allow-Origin', "*");

    // 5.0 响应给客户端
    res.send({ code: 200, msg: '数据皮肤添加成功' });

})

server.listen(3001, () => {
    console.log('3001就绪');
})